#pragma once


template <typename T>
class Collector
{
public:
    virtual ~Collector() {}

    virtual void add(const T &e) = 0;

    virtual void add(T &&e) = 0;
};

